package com.sale.system.service;

import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;
import com.sale.system.api.domain.SysBalance;
import com.sale.system.domain.PullDown;
import com.sale.system.domain.SysAccountManagement;
import com.sale.system.domain.vo.SysAccountManagementExportVo;
import com.sale.system.export.SysAccountManagementExport;

import java.util.List;

/**
 * @Author: YSL
 * @Date: 2023/7/5 15:36
 * @Desc: 账户管理 服务层
 */
public interface ISysAccountManagementService {

    /**
     * 分页查询账户管理列表
     * @param sysAccountManagement
     * @param pageQuery
     * @return
     */
    TableDataInfo<SysAccountManagement> selectAccountManagementList(SysAccountManagement sysAccountManagement, PageQuery pageQuery);

    /**
     * 分页查询账户管理列表(不分页启用状态)
     * @param sysAccountManagement
     * @param
     * @return
     */
    List<SysAccountManagement> listNotPage(SysAccountManagement sysAccountManagement);


    /**
     * 根据id查询账户管理详情
     * @param accountId
     * @return
     */
    SysAccountManagement getAccountManagementById(Long accountId);

    /**
     * 新增账户管理
     * @param sysAccountManagement
     * @return
     */
    int insertAccountManagement(SysAccountManagement sysAccountManagement);

    /**
     * 修改账户管理
     * @param sysAccountManagement
     * @return
     */
    int updateAccountManagement(SysAccountManagement sysAccountManagement);

    /**
     * 删除账户管理信息
     * @param accountId
     * @return
     */
    int deleteAccountManagement(Long accountId);

    /**
     * 导出账户管理集合
     * @param sysAccountManagement
     * @return
     */
    List<SysAccountManagementExport> selectAccountDeriveList(SysAccountManagement sysAccountManagement);

    /**
     * 修改账户当前余额
     */
    int editBalance(SysBalance sys);

    /**
     * 循环账户当前余额
     */
    int editListBalance(List<SysBalance> list1);

    /**
     * 循环账户当前余额(-)
     */
    int editListBalance2(List<SysBalance> list1);

    /**
     * 修改账户当前余额 -
     */
    int editBalance2(SysBalance sys);

    /**
     * 账户管理下拉
     */
    List<PullDown> getManagementDown();
}
